#ifndef __DENSO_H__
#define __DENSO_H__



#include <pylon/PylonIncludes.h>
#ifdef PYLON_WIN_BUILD
#    include <pylon/PylonGUI.h>
#endif

#include <opencv/cv.h>
#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/calib3d/calib3d.hpp>



// Namespace for using pylon objects.
using namespace Pylon;
using namespace std;
using namespace cv;

// Number of images to be grabbed.
// static const uint32_t c_countOfImagesToGrab = 100;


class PylonGrabber
{

public:

		PylonGrabber();
			

		~PylonGrabber();
		
		
		int grabFrame(Mat& frame);
		
		int setNumOfImageToGrab(uint32_t num);


private:

		int exitCode;
		
		Pylon::PylonAutoInitTerm autoInitTerm;

		CInstantCamera camera;
		
		
		// Number of images to be grabbed.
		uint32_t c_countOfImagesToGrab;   //  = 100;
		

};



#endif